﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////


#pragma once
#include "GnufExtension.h"

namespace {
    class GnufDropdownMenuDefinitionImpl;
}
namespace gnuf {

    class GNUF_EXTENSION_EXPORT GnufDropdownMenuDefinition
    {
        CANNOT_COPY_OR_ASSIGN(GnufDropdownMenuDefinition)
    public:
        GnufDropdownMenuDefinition(
            const wchar_t * key,
            // Info
            const wchar_t * caption,
            const wchar_t * tooltip,
            const wchar_t * iconDir);
        ~GnufDropdownMenuDefinition();
    private:
        gcmp::OwnerPtr< GnufDropdownMenuDefinitionImpl > m_impl;
    };

}

#define GNUF_DROPDOWN_MENU_DEFINITION(ClassName, CommandId, Caption, ToolTip, IconDir) \
   static gnuf::GnufDropdownMenuDefinition s_gnufDropdownMenuDef##ClassName( \
       CommandId, Caption, ToolTip, IconDir);
